<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>01-jsx规则</title>
    <style>
      .title {
        color: red;
      }
    </style>
  </head>
  <body>
    <div id="app"></div>

    <!-- 导入 react 主库 -->
    <script src="../js/react.development.js"></script>
    <!-- 导入 reactDom 扩展库 -->
    <script src="../js/react-dom.development.js"></script>
    <!-- 导入 babel 用于将jsx转为js -->
    <script src="../js/babel.min.js"></script>

    <script type="text/babel">
      let str = "Hello, React";
      let myId = "myid";
      // 创建虚拟DOM
      const VDOM = (
        <div>
          <h2 className="title" id={myId}>
            <span style={{ backgroundColor: "yellow", fontSize: "25px" }}>
              {str.toLocaleUpperCase()}
            </span>
          </h2>
        </div>
      );

      /*
          1.定义虚拟DOM时, 不要写引号
          2.标签中混入js表达式要用{}
          3.样式的类名不要用class, 要用className
          4.内联样式,要用style={{key:value}}的形式去写
          5.只有一个根标签
          6.标签必须闭合
          7.标签首字母
                (1) 若小写字母开头,则将标签转为html中的同名标签,若html中无此标签则报错
                (2) 若大写字母开头，则就去渲染对应的组件，若组件没有定义就报错
      */

      // 渲染虚拟DOM到页面
      ReactDOM.render(VDOM, document.getElementById("app"));
    </script>
  </body>
</html>
